export default class PayUtil {
  /**
   * 拉起微信支付
   * @param {String} qrData 平台返回的支付参数
   */
  static wxPay(qrData) {
    if (!qrData) {
      console.error("qrData不能为空");
      return;
    }

    // #ifdef H5
    // H5：qrData 是 URL，直接跳转
    if (qrData.startsWith("http")) {
      //window.location.href = qrData;
	  location.href = qrData;
    } else {
      console.error("H5端 qrData 格式错误:", qrData);
    }
    // #endif

    // #ifdef APP-PLUS
    // App：qrData 是 URL，需要解析出 t
    if (qrData.startsWith("http")) {
      try {
        const parts = qrData.split("/");
        const t = parts[parts.length - 1]; // 取最后一段
        const scheme = `weixin://dl/business/?t=${t}`;
        plus.runtime.openURL(scheme, (err) => {
          console.error("拉起微信失败:", err);
        });
      } catch (e) {
        console.error("解析qrData失败:", e);
      }
    } else {
      console.error("App端 qrData 格式错误:", qrData);
    }
    // #endif

    // #ifdef MP-WEIXIN
    // 小程序：qrData 是 JSON字符串
    try {
      let payData = {};
      if (typeof qrData === "string") {
        payData = JSON.parse(qrData);
      } else {
        payData = qrData;
      }

      // 确认必须字段
      if (
        payData.timeStamp &&
        payData.nonceStr &&
        payData.package &&
        payData.signType &&
        payData.paySign
      ) {
        uni.requestPayment({
          timeStamp: payData.timeStamp,
          nonceStr: payData.nonceStr,
          package: payData.package,
          signType: payData.signType,
          paySign: payData.paySign,
          success: () => {
            console.log("支付成功");
          },
          fail: (err) => {
            console.error("支付失败:", err);
          },
        });
      } else {
        console.error("小程序端 qrData 参数不完整:", payData);
      }
    } catch (e) {
      console.error("小程序端解析qrData失败:", e, qrData);
    }
    // #endif
  }
}
